﻿using System;
using System.Collections.Generic;
using System.Reflection;

namespace CPN.PJN.Silverlight.Common.Helpers
{
    public static class ReflectionExtensions
    {
        /// <summary>
        /// Récupère les valeurs d'un enum
        /// </summary>
        /// <param name="enumType">Type de l'enum</param>
        /// <returns>Liste des valeurs de l'enum</returns>
        public static IList<string> GetValues(this Type enumType)
        {
            if (!enumType.IsEnum)
            {
                throw new ArgumentException("Type '" + enumType.Name + "' is not an Enum.");
            }

            List<string> values = new List<string>();
            FieldInfo[] fields = enumType.GetFields();
            foreach (FieldInfo field in fields)
            {
                if (field.IsLiteral)
                {
                    object value = field.GetValue(enumType);
                    values.Add(value.ToString());
                }
            }

            return values;
        }
    }
}
